Method and Apparatus for Merging Digital Content

ABSTRACT

Embodiments for merging digital content are disclosed.

This application is a divisional of U.S. application Ser. No. 11/066,976, filed Feb. 25, 2005, which is incorporated by reference herein in its entirety.

FIELD

This application pertains to the field of digital media, and more particularly, to the field of merging digital content.

BACKGROUND

Users of electronic devices such as computers sometimes desire to merge digital content such as a web page into another digital content such as a word processing document. This is sometimes accomplished by a user selecting a link (for example, a hypertext link) within a current document, and in response to the selection of the link a software agent retrieves a digital content and merges it with the current document. An example maybe found in U.S. Pat. No. 6,415,278.

BRIEF DESCRIPTION OF THE DRAWINGS

The claimed subject matter will be understood more fully from the detailed description given below and from the accompanying drawings of embodiments which should not be taken to limit claimed subject matter to the specific embodiments described, but are for explanation and understanding only.

FIG. 1 is a flow diagram of an example embodiment for merging digital content.

FIG. 2 is a flow diagram of an example embodiment for merging digital content.

FIG. 3 is a flow diagram of an example embodiment for merging digital content.

FIG. 4 is a flow diagram of an example embodiment for merging digital content.

FIG. 5 is a block diagram of an embodiment of an example computer system.

FIG. 6 is a representation of an example digital content including links to other digital content.

DETAILED DESCRIPTION

FIG. 1 is a flow diagram of an example embodiment for merging digital content. As used herein, the term “digital content” is meant to include a wide range of content types that may be represented in a digital format. Examples of digital content include, but are not limited to, text files, word processor documents, video clips, digital photographs, bitmaps, audio files, etc. Documents that may be accessed via the World Wide Web are additional examples of digital content.

At block 110, a second digital content is merged into a first digital content. The merge operation may include a wide range of possible techniques for merging the second. digital content into the first digital content. In one embodiment, the second digital content is appended to the end of the first digital content. Further, in one embodiment, the merge operation may include converting the second digital content from one format to another format that is consistent with the first digital content.

Digital content may reside locally within a computer system or may be distributed over a network. For example, digital content may be retrieved from a remote server via the Internet.

At block 120, a determination is made as to whether a request has been received to merge a third digital content into the first digital content. If such a request is received., processing continues at block 130.

A determination is made at block 130 as to whether the second digital content has been merged with the first digital content. If the second digital content merge operation has completed, a merge operation for the third digital content is initiated, as indicated at block 140. However, if the second digital content merge operation has not yet completed, at block 150 the request to merge the third digital content is placed in a queue for later processing. As used herein, the term “completed” in association with merge operation or request is meant to indicate that the associated merge operation or request has progressed at least to a point where a subsequent merge operation may begin

By allowing the third digital content merge request to be paced in a queue for later processing, a user initiating the third digital content merge request does not need to wait for the second digital content merge operation to complete before initiating the third digital content merge request.

As used herein, the term “queue” is meant to include any circuit, device, or technique for maintaining an operation request for later completion.

FIG. 2 is a flow diagram of an example embodiment for merging digital content. At block 210, a current request is received, to merge a second. digital content into a first digital content. A determination is made at block 220 as to whether there are previously requested merge operations pending. For this example embodiment, the previously requested merge operations may relate to the first digital content. If no previously requested merge operations are pending, at block 230 the current request to merge the second digital content into the first digital content is completed. If at block 220 the determination is made that one or more previously requested merge operations are pending, at block 240 the current request to merge the second digital content into the first digital content is placed in a queue to be processed after one or more previously requested merge operations are completed.

Although the example embodiment discussed above in connection with FIG. 2 discloses that the current request is placed in a queue until, the previously requested merge operations are complete, other embodiments are possible that may provide for a user to rearrange the order in which the current and previously requested merge operations are to be completed. For example, the current request may be given higher priority over the previously requested merge operation requests.

FIG. 3 is a flow diagram of an example embodiment for merging digital content. Block 310 indicates that if a link is selected, a current request is generated at block 320 to merge a second document of a second format type into a first document of a first format type. The link for this example embodiment may comprise a reference to another document or other type of digital content. One possible type of link may comprise a hypertext link. In this and in other embodiments, a link may be selected using any method, including, but not limited to, a user placing a cursor over a link and pressing and releasing a button or tapping on some other surface on a mouse or other type of pointing device while the cursor is over the link. Another method may include a user placing a cursor over the link.

At block 330, a determination is made as to whether one or more previously requested merge operations involving the first document are pending. If not, at block 360 the second document is merged into the first document. If a determination is made that there is one or more pending merge operations involving the first document, at block 340 the current request is placed in a queue.

At block 350, a determination is made as to whether the previously requested. merge operation or operations have completed. If the previously requested merge operation or operations have completed, at block 360 the current request is completed and the second document is merged into the first document.

As mentioned above, for this example embodiment the first document and the second document may comprise differing formats. For example, the first document may comprise a physical markup format and the second document may comprise a semantic markup format. A markup language may be a set of codes or tags which may be embedded within a document to describe how the document should be displayed on a display device. With physical markup document formats, the document layout may be fixed. Some physical markup document formats may have paginated representations that may include pages having a respective physical width and physical height. Also, font sizes may be fixed. Some physical markup document formations may lack pagination. Semantic markup formats may lack fixed document formats. Semantic markup formats may also lack fixed page dimensions and may also lack pagination information, but may identify some characteristics of a document including line spacing or font size. The precise manner in which these characteristics are to be displayed for semantic markup documents may be left to a software agent, such as a web browser.

Many of the documents accessible on the World Wide Web are encoded using a semantic markup language known as the Hypertext Markup Language (HTML). HTML is merely one example of a semantic markup language. Extensible Markup Language (XML) comprises another example of a semantic markup language. One example of a physical markup representation comprises portable document format (PDF) files.

To merge the second document of a second format type into a first document of a first format type, a conversion from one format to the other may take place. For example, one embodiment may convert a semantic markup format document into a physical markup format to be incorporated, into a physical markup document.

For one embodiment, converting from a semantic markup document to a physical markup document may include parsing a semantic markup document and loading the parsed semantic information into data structures that may be stored in a computer memory. The data structures may then be processed with a layout method. The layout method may use a set of rules and/or heuristics to process the data structures that represent the semantic information and produce another set of data structures that represent a physical markup format. For one embodiment, the layout rules may include the page size of the target physical markup document as well as font types and font colors.

For these and other embodiments, a user may select the links that the user desires to download and merge, and the software agent and/or hardware works on them in the order of request. The user may also subsequently adjust the order of requests within the queue.

FIG. 4 is a flow diagram of an example embodiment for merging digital content. At block 410, a plurality of digital content merge requests are generated. The plurality of requests for this example embodiment may be associated with a multi-level download. One example of a multi-level download includes selecting a link on a web page or a link embedded in some other document. The link may refer to a document that in turn includes links to other documents, and merge operation requests may be initiated for these linked documents. A multi-level download may also retrieve and merge a subset of the linked documents. For example, one embodiment may retrieve linked documents that share a directory path with an original document, but ignore other linked documents that fall outside of that directory path. Other embodiments may include multi-level downloads that retrieve documents associated with a hostname indicated by a link. As used herein, the term “hostname” is meant to include any device, technique, or method for identifying a computer. Still other embodiments may include multi-level downloads that retrieve documents that are associated with a specified regular expression. In this context, a regular expression is any way to specify, match, and replace patterns in text. In one embodiment, a regular expression is represented as a string that comprises characters and is used to find or match patterns of characters in a second string. Other embodiments may use other criteria to include documents in a multi-level download.

At block 420, a determination is made as to whether a link has been selected by a user subsequent to the generation of the plurality of requests associated With the multi-level download. If no link has been selected, at block 430 the multi-level download merge requests continue to be serviced. After a link is selected, at block 440 the multi-level download merge requests are interrupted. At block 450 a higher priority merge request is generated. This merge request may seek to retrieve a document referred to by the selected link. Block 460 indicates that once the higher priority merge request has completed, processing returns to block 430 and the multi-level download merge requests are serviced. Thus, a multi-level download may be interrupted in this example embodiment by a user selecting a link indicating that the user desires to retrieve a document associated with the link. The multi-level download resumes when the document referred to by the user-selected link has completed its merge operation.

FIG. 5 is a block diagram of an embodiment of an example computer system 500. System 500 includes a computer 510. Computer 510 includes a display interface 516 coupled to a display device 520. Computer 510 is further coupled via a communications link to a web server 530 for this example embodiment. Computer 510 also includes a physical markup format document viewer 512, a browser 514, and a digital content merge unit 518. Digital content merge unit 518 includes a queue 519. Physical markup format document viewer 512, browser 514, and digital content merge unit 518 may be implemented either in software, firmware, hardware, or in a combination of hardware, firmware, and software.

The physical markup document which is being displayed by physical markup format document viewer 512 may have links to web pages, as well as to internal pages within the physical markup format document. After a user selects a link in the physical markup format document with a mouse 540, if the link refers to a page within the physical markup format document, then that page is displayed by viewer 512. If the link is to a web page, that page is either displayed by browser 514 or merged into the physical markup format document by digital content merge unit 518, depending at least in part on which mode is selected by the user. A web page may comprise a document on the World Wide Web, and a web page may have a unique Uniform Resource Locator (URL).

For the first merge request initiated by the selection of a link, the request may be operated on without significant delay. Subsequent link selections may result in merge requests placed in queue 519 if previous merge requests are pending. In this manner, the user need not wait until one merge request completes before being able to initiate other merge requests via the selection of additional links. This allows the user to work more efficiently.

Digital content merge unit 518 may be implemented as part of viewer 512. In one embodiment, viewer 512 comprises a PDF viewer and browser 514 comprises a web browser. Other embodiments are possible using other computer system configurations.

For this embodiment, when a second document is merged with a first document, the second document may be appended to the end of the first document. Other embodiments may allow the user to specify that the second document be placed at other locations within the first document. Further, other embodiments are possible where the user may rearrange the order of merge requests within the queue when multiple merge requests are pending.

FIG. 6 is a representation of an example digital content including links to other digital content. FIG. 6 depicts an. example web page 600, including a number of links. For this example embodiment, after a user selects a link for merging into a document, a visual indication is given to indicate that the selected link has been added to the download and merge queue. For example, visual indication 625 indicates that link. 620 has been selected and a request has been added to the queue. Similarly, visual indications 635 and 645 indicate that links 630 and 640 have been selected and that requests have been added to the queue. After the download and merge operations for a link have completed, the associated visual indication is removed.

Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments. The various appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments.

In the foregoing specification claimed subject matter has been described with reference to specific example embodiments thereof. It will, however, be evident that various modifications and/or changes may be made thereto without departing from the broader spirit and/or scope of the subject matter as set forth in the appended claims. The specification and/or drawings are, accordingly, to be regarded in an illustrative rather than in a restrictive sense. 

1-7. (canceled)
 8. A method, comprising: generating a plurality of digital content merge requests associated with a multilevel download; interrupting the plurality of digital content merge requests associated with the multi-level download in response to a selection of a link; generating a higher priority merge request in response to the selection of the link; completing the higher priority merge request; and resuming the plurality of digital content merge requests associated with the multilevel download.
 9. The method of claim 8, wherein generating a plurality of digital content merge requests includes generating a plurality of digital content merge requests to merge a plurality of digital content into an initial digital content, the plurality of digital content located along a directory path associated with the line.
 10. The method of claim 8, wherein generating a plurality of digital content merge requests includes generating a plurality of merge requests for a plurality of digital content associated with a hostname.
 11. The method of claim 8, wherein generating a plurality of digital content merge requests includes generating a plurality of merge requests for a plurality of digital content associated with a specified regular expression. 12-23. (canceled)
 24. A machine-readable medium containing instructions that when executed perform a method, comprising: generating a plurality of digital content merge requests associated with a multilevel download; interrupting the plurality of digital content merge requests associated with the multi-level download in response to a selection of a link; generating a higher priority merge request in response to the selection of the link; completing the higher priority merge request; and resuming the plurality of digital content merge requests associated with the multilevel download.
 25. The machine-readable medium of claim 24, wherein generating a plurality of digital content merge requests includes generating a plurality of digital content merge requests to merge a plurality of digital content into an initial digital content, the plurality of digital content located along a directory path associated with the link.
 26. The method of claim 24, wherein generating a plurality of digital content merge requests includes generating a plurality of merge requests for a plurality of digital content associated with a hostname.
 27. The method of claim 24, wherein generating a plurality of digital content merge requests includes generating a plurality of merge requests for a plurality of digital content associated with a specified regular expression. 28-35. (canceled) 